﻿using System;

namespace OperatorsApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            int x = 1;
            int y = x << 1; // 左移一位相当于乘2;
            Console.WriteLine(y);
            Console.ReadLine();

            x = 2;
            y = x >> 1;// 右移一位相当于除以 2
            Console.WriteLine(y);
            Console.ReadLine();
        }
    }
}
/*
 
C# 是用 <<(左移) 和 >>（右移） 运算符是用来执行移位运算。

左移 (<<)：将第一个操作数向左移动第二个操作数指定的位数，空出的位置补 0。

左移相当于乘. 左移一位相当于乘2;左移两位相当于乘4;左移三位相当于乘8。

x<<1= x*2
x<<2= x*4
x<<3= x*8
x<<4= x*16
同理, 右移即相反：

右移 (>>)：将第一个操作数向右移动第二个操作数所指定的位数，空出的位置补 0。

右移相当于整除. 右移一位相当于除以 2;右移两位相当于除以 4;右移三位相当于除以 8。

x>>1= x/2
x>>2= x/4
x>>3= x/8
x>>4= x/16
因为位移比乘除速度快，对效率要求高，而且满足 2 的幂次方的乘除运方，可以采用位移的方式进行。 

 */